首页/ 学科题库/ CSS/ BFC 块级格式化上下文
CSS 实战教程

BFC 块级格式化上下文

2026-05-16 约 8 分钟 juanwangdev

BFC 块级格式化上下文

BFC(Block Formatting Context)是页面中的一个独立渲染区域,内部元素与外部隔离,互不影响。

什么是 BFC

BFC 是一个独立的布局环境,其中的元素按照块级格式化规则排列,不会影响外部元素。

触发 BFC 的条件

属性值说明
float值不为 none
position值为 absolute 或 fixed
display值为 inline-block、table-cell、table-caption、flex、grid、flow-root
overflow值不为 visible(如 auto、hidden、scroll)
CSS
/* 常用触发方式 */
.bfc-float {
  float: left;
}

.bfc-overflow {
  overflow: hidden;
}

.bfc-display {
  display: flow-root; /* 最推荐,无副作用 */
}

BFC 的特性

1. 内部元素垂直排列

CSS
.bfc-container {
  display: flow-root;
}

2. BFC 区域不与浮动元素重叠

CSS
.sidebar {
  float: left;
  width: 200px;
  height: 100px;
}

.main-content {
  display: flow-root; /* BFC 不会与浮动元素重叠 */
}

3. BFC 可以包含浮动元素(清除浮动)

CSS
.parent {
  display: flow-root; /* 解决子元素浮动导致父元素高度塌陷 */
}

.float-child {
  float: left;
}

4. BFC 阻止外边距合并

CSS
.container {
  display: flow-root; /* 阻止内部元素与外部元素的外边距合并 */
}

常见应用场景

清除浮动

CSS
.clearfix {
  display: flow-root;
}

阻止外边距合并

CSS
.wrapper {
  display: flow-root;
}

.wrapper p {
  margin: 20px 0;
}

实现两栏布局

CSS
.left {
  float: left;
  width: 200px;
}

.right {
  display: flow-root; /* 自适应剩余宽度,不与浮动元素重叠 */
}

要点总结

  • BFC 是独立的渲染区域,内外元素互不影响
  • 推荐使用 display: flow-root 创建 BFC,无副作用
  • BFC 主要用于:清除浮动、阻止外边距合并、防止浮动元素重叠
  • 理解 BFC 有助于解决常见布局问题
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 Flex布局之order 下一篇 → Grid布局之fr单位参数深入理解